package common.model.po;

import com.baomidou.mybatisplus.annotation.TableName;
import common.model.enums.SysAuthorityTypeEnum;
import common.model.po.base.BasePo;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author 米泽鹏
 * @since 2022-03-11
 */
@Data
@EqualsAndHashCode(callSuper = true)
@Accessors(chain = true)
@ToString(callSuper = true)
@TableName("sys_authority")
public class SysAuthority extends BasePo<SysAuthority> {

	private static final long serialVersionUID = 1L;

	/**
	 * 父级父级权限的id
	 */
	private Long parentId;

	/**
	 * 排序
	 */
	private Integer sort;

	/**
	 * 类型<br/>
	 * 见{@link SysAuthorityTypeEnum}
	 */
	private Integer type;

	/**
	 * 类型是1-菜单时，该字段表示路由名称，建议用英文
	 * 类型是2-页面组件或3-接口时，该字段表示页面组件或者接口的名称，可以随便起名并用中文
	 */
	private String name;

	/**
	 * （1-菜单）菜单的title，用于国际化
	 */
	private String title;

	/**
	 * （1-菜单）路由的path，规定以/开头
	 */
	private String path;

	/**
	 * （3-接口）接口的url，规定以/开头
	 */
	private String url;

	/**
	 * （1-菜单）页面文件路径（views/system/user/index.vue填写成system/user）
	 */
	private String component;

	/**
	 * （1-菜单）路由重定向地址
	 */
	private String redirect;

	/**
	 * （2-页面组件）资源编码，用于控制页面组件权限
	 */
	private String resources;

	/**
	 * （1-菜单）是否隐藏
	 */
	private Integer hidden;

	/**
	 * （1-菜单）图标
	 */
	private String icon;

	/**
	 * （1-菜单）页面是否缓存
	 */
	private Integer keepAlive;

	/**
	 * （1-菜单）是否固定tagsView，固定后不可关闭
	 */
	private Integer affix;

	/**
	 * （1-菜单）是否始终显示为独立的菜单
	 */
	private Integer alwaysShow;

	/**
	 * 描述
	 */
	private String description;

	@Override
	public Serializable pkVal() {
		return super.getId();
	}

}
